home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / BG_SRC.ZIP / BG_USER1.C < prev    next >
C/C++ Source or Header  |  1994-05-24  |  42KB  |  830 lines

  1. /*
  2.  *
  3.  *                     B  G  _  U  S  E  R  1 .  C
  4.  * BG.EXE user interaction file, this version 28th April 1994.
  5.  *
  6.  */
  7.  
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <string.h>
  11. #include <conio.h>
  12. #include <time.h>
  13. #include "lang.h"
  14. #include "bg.h"
  15.  
  16. /***************************************************************************/
  17.  
  18. extern short Lang ;
  19. extern Disp_Cfg_t Disp_Cfg ;
  20.  
  21. /***************************************************************************/
  22.  
  23.  
  24. /* String menu type. A list of fields, each field having n options. eg:
  25.     SPEED:    full   MEDIUM   slow   pausing
  26.     LANGUAGE: italian ENGLISH
  27.     OPPONENT: GIORGIO pinuccia, alberto, luisa
  28. */
  29.  
  30. String_Menu_t Setup_Menu [N_SETUP_FIELDS] = {
  31.     {{"LANGUAGE","LINGUA"},
  32.      {{"ENGLISH","ITALIAN"},
  33.       {"INGLESE","ITALIANO"}},
  34.      0,2,12},
  35.     {{"SPEED","VELOCITA'"},
  36.      {{"PAUSING","SLOW","MED","FAST"},
  37.       {"PAUSA","LENTO","MEDIO","VELOCE"}},
  38.      0,4,9},
  39.     {{"YOUR ARE","TU SEI"},
  40.      {{"RED","WHITE"},
  41.       {"ROSSO","BIANCO"}},
  42.      0,2,8},
  43.     {{"OPPONENT","AVVERSARIO"},
  44.      {{"SERGIO","ENZO  ","OWEN  ","BRIAN  "}, /* Spaces required when...  */
  45.       {"SERGIO","ENZO  ","OWEN  ","BRIAN  "}},/* ...doing genetics.       */
  46.      0,4,12},
  47.     {{"POINTS","PUNTI"},
  48.      {{"3","5","7","9"},
  49.       {"3","5","7","9"}},
  50.      0,4,3},
  51.     {{"DICE","DADI"},
  52.      {{"AUTO","MANUAL"},
  53.       {"AUTO","MANUALE"}},
  54.      0,2,9},
  55. } ;
  56.  
  57. /***************************************************************************/
  58.  
  59. void Setup (Speed_t* Speed, Player_t* Human, short* Opp_I)
  60. /*
  61. PURPOSE: To allow the user to change variuos things.
  62. */
  63. {
  64.     ushort Field ;
  65.     extern Disp_Cfg_t Disp_Cfg ;
  66.     extern Throw_t    Throw ; /* Automatic or manual */
  67.     extern int        Target_Score ;
  68.     int     Com ;
  69.     #define S_X     ((SETUP_COL*Disp_Cfg.Char_Wide) - (MARGIN/2))
  70.     #define S_Y     ((S_TITLE_ROW*Disp_Cfg.Char_High) - (MARGIN/2))
  71.     #define S_WIDE  ((SETUP_COLS_WIDE*Disp_Cfg.Char_Wide) + MARGIN)
  72.     #define S_HIGH  (((N_SETUP_FIELDS+1)*Disp_Cfg.Char_High) + MARGIN)
  73.  
  74.     Fill_Rect (S_X,S_Y,S_WIDE,S_HIGH,BLACK) ;
  75.     Draw_Rect (S_X-1,S_Y-1,S_WIDE+2,S_HIGH+2,WHITE) ;
  76.  
  77.     Setup_Menu [LANG_FIELD].Selector  = (char)Lang ;
  78.     Setup_Menu [COL_FIELD].Selector   = (char)(*Human) ;
  79.     Setup_Menu [SPEED_FIELD].Selector = (char)(*Speed) ;
  80.     Setup_Menu [OPP_FIELD].Selector   = (char)(*Opp_I) ;
  81.     Setup_Menu [THROW_FIELD].Selector = (char)Throw ;
  82.  
  83.     Print_Message (MENU_HELP_MSG) ;
  84.     Print_Message (SETUP_MSG) ;
  85.     /* Redraw all fields */
  86.     for (Field = 0 ; Field < N_SETUP_FIELDS ; Field++) {
  87.         Draw_Field (Field,&Setup_Menu[Field],GREY) ;
  88.     }
  89.  
  90.     Field = 0 ;
  91.     do {
  92.         Draw_Field (Field,&Setup_Menu[Field],WHITE) ; /* Hilite */
  93.         Com = Get_Key () ;
  94.         Draw_Field (Field,&Setup_Menu[Field],GREY) ; /* De hilite */
  95.         switch (Com) {
  96.             case UP_KEY :
  97.                 if (Field > 0) {
  98.                     Field-- ;
  99.                 } else {
  100.                     Field = N_SETUP_FIELDS - 1 ;
  101.                 }
  102.                 break ;
  103.             case DN_KEY :
  104.                 if (Field < (N_SETUP_FIELDS-1)) {
  105.                     Field++ ;
  106.                 } else {
  107.                     Field = 0 ;
  108.                 }
  109.                 break ;
  110.             case RT_KEY :
  111.                 if (Setup_Menu[Field].Selector < (Setup_Menu[Field].N_Options-1)) {
  112.                     Setup_Menu[Field].Selector++ ;
  113.                 } else {
  114.                     Setup_Menu[Field].Selector = 0 ;
  115.                 }
  116.                 break ;
  117.             case LF_KEY :
  118.                 if (Setup_Menu[Field].Selector > 0) {
  119.                     Setup_Menu[Field].Selector-- ;
  120.                 } else {
  121.                     Setup_Menu[Field].Selector = Setup_Menu[Field].N_Options-1 ;
  122.                 }
  123.                 break ;
  124.         }
  125.     } while ((Com != ENTER_KEY) && (Com != ESC_KEY)) ;
  126.  
  127.     if (Com == ENTER_KEY) {
  128.         /* The changes take effect only with the enter key */
  129.         Lang         = Setup_Menu [LANG_FIELD].Selector ;
  130.         (*Speed)     = (Speed_t)  Setup_Menu [SPEED_FIELD].Selector ;
  131.         (*Human)     = (Player_t) Setup_Menu [COL_FIELD].Selector ;
  132.         (*Opp_I)     = (short)    Setup_Menu [OPP_FIELD].Selector ;
  133.         Throw        = (Throw_t)  Setup_Menu [THROW_FIELD].Selector ;
  134.         switch (Setup_Menu [TARG_FIELD].Selector) {
  135.             case 0 : Target_Score = 3 ; break ;
  136.             case 1 : Target_Score = 5 ; break ;
  137.             case 2 : Target_Score = 7 ; break ;
  138.             case 3 : Target_Score = 9 ; break ;
  139.             default :
  140.                 Error_Exit ("Bad selector for Target_Score") ;
  141.                 break ;
  142.         }
  143.     }
  144.     Fill_Rect (S_X-1,S_Y-1,S_WIDE+2,S_HIGH+2,BLACK) ;
  145. }
  146.  
  147. /**************************************************************************/
  148.  
  149. void Draw_Field (ushort Field, String_Menu_t* Item, ushort Colour)
  150. /*
  151. PURPOSE: To draw the menu item in the requested colour.
  152. NOTES  : Since we can use the 1 bpp CGA mode we change the CASE of
  153.          the field according to the Colour, so that a change
  154.          can be seen in single colour displays...
  155. */
  156. {
  157.     #define LS_CHARS 32
  158.     ushort i,Col ;
  159.     char Temp [LS_CHARS] ;
  160.  
  161.     i = 0 ;
  162.     (void)strcpy (Temp,Item->Name[Lang]) ;
  163.     if (Colour != WHITE) {
  164.         (void)strlwr (Temp) ;
  165.     } else {
  166.         (void)strupr (Temp) ;
  167.     }
  168.  
  169.     Graf_Text (SETUP_ROW+Field,SETUP_COL,Temp,Colour) ;
  170.  
  171.     for (i = 0 ; i < Item->N_Options ; i++) {
  172.         (void)strcpy (Temp,Item->Options[Lang][i]) ;
  173.         if (i == Item->Selector) {
  174.             Col = WHITE ;
  175.             (void)strupr (Temp) ;
  176.         } else {
  177.             Col = GREY ;
  178.             (void)strlwr (Temp) ;
  179.         }
  180.         Graf_Text (SETUP_ROW+Field,FIELD_COL+(i*Item->O_Width),Temp,Col) ;
  181.     }
  182. }
  183.  
  184. /**************************************************************************/
  185.  
  186. boolean Top_Level_Interact (Speed_t* Speed, Player_t* Human, short* Opponent)
  187. /*
  188. PURPOSE: To let the user play, exit, or change settings. Normally this
  189.          is called at the very start of the program and when the user
  190.          wants to change things between games. We return TRUE if we
  191.          are to continue playing.
  192. */
  193. {
  194.     int Com ;
  195.  
  196.     do {
  197.         Top_Level_Menu (TRUE) ;
  198.         Com = Get_Key () ;
  199.         switch (Com) {
  200.             case SETUP_KEY :
  201.                 Top_Level_Menu (FALSE) ;
  202.                 Setup (Speed,Human,Opponent) ;
  203.                 break ;
  204.         }
  205.     } while ((Com != PLAY_KEY) && (Com != ESC_KEY)) ;
  206.  
  207.     Top_Level_Menu (FALSE) ;
  208.  
  209.     Setup_Weights (*Opponent,OPPONENT(*Human)) ;
  210.     Clear_Logo_Area () ;
  211.  
  212.     return (Com == PLAY_KEY) ;
  213. }
  214.  
  215. /**************************************************************************/
  216.  
  217. void Top_Level_Menu (boolean Draw)
  218. /*
  219. PURPOSE: To draw the top level menu, or erase it.
  220. */
  221. {
  222.     #define T_X     ((MAIN_MENU_COL*Disp_Cfg.Char_Wide) - (MARGIN/2))
  223.     #define T_Y     ((MAIN_MENU_ROW*Disp_Cfg.Char_High) - (MARGIN/2))
  224.     #define T_WIDE  ((MAIN_COLS_WIDE*Disp_Cfg.Char_Wide) + MARGIN)
  225.     #define T_HIGH  ((MAIN_MENU_ROWS*Disp_Cfg.Char_High) + MARGIN)
  226.     extern  Disp_Cfg_t Disp_Cfg ;
  227.     ushort  m ;
  228.  
  229.     if (!Draw) {
  230.         Fill_Rect (T_X-1,T_Y-1,T_WIDE+2,T_HIGH+2,BLACK) ;
  231.         return ;
  232.     }
  233.     Clear_Help_Line () ; /* No help, it's all in top level menu */
  234.     Fill_Rect (T_X,T_Y,T_WIDE,T_HIGH,BLACK) ;
  235.     Draw_Rect (T_X-1,T_Y-1,T_WIDE+2,T_HIGH+2,WHITE) ;
  236.  
  237.     for (m = FIRST_MAIN_MSG ; m <= LAST_MAIN_MSG ; m++) {
  238.         Print_Message (m) ;
  239.     }
  240. }
  241.  
  242. /**************************************************************************/
  243.  
  244. int Get_Key (void)
  245. /*
  246. PURPOSE: To do a getch, and to return also a single code for function keys.
  247. */
  248. {
  249.     int Ch ;
  250.  
  251.     Ch = getch();
  252.     if (Ch == FUN_PREFIX) {
  253.         return (getch()) ;
  254.     } else {
  255.         return (Ch) ;
  256.     }
  257. }
  258.  
  259. /**************************************************************************/
  260.  
  261. boolean First_Interaction (Speed_t* Speed, Player_t* Human, short* Opponent)
  262. /*
  263. PURPOSE: To draw the title page and get the first choices of the user.
  264. */
  265. {
  266.     extern Screen_Const_t Grafs ;
  267.     boolean Playing ;
  268.  
  269.     Title_Page () ;
  270.  
  271.     Playing  = Top_Level_Interact (Speed,Human,Opponent) ;
  272.     if (Playing) {
  273.         Clear_Screen () ;
  274.     }
  275.     return (Playing) ;
  276. }
  277.  
  278. /*************************************************************************/
  279.  
  280. ushort Get_Check_Sum (uchar* String)
  281. /*
  282. PURPOSE: Returns the checksum of a string.
  283. */
  284. {
  285.     ushort sum,i ;
  286.     sum = 0 ;
  287.     i   = 0 ;
  288.     while (String[i] != NUL) {
  289.         sum = sum + (ushort)String[i] ;
  290.         i++ ;
  291.     }
  292.     return (sum) ;
  293. }
  294.  
  295. /*************************************************************************/
  296.  
  297. #include "DEC.H"
  298.  
  299. /*************************************************************************/
  300.  
  301. void Demask (char* String)
  302. /*
  303. PURPOSE: To strip the mask bit off a string
  304. */
  305. {
  306.     #define UNMASK 0x7F
  307.     short i ;
  308.     i = 0 ;
  309.     while (String[i] != NUL) {
  310.         String [i] = String[i] & UNMASK ;
  311.         i++ ;
  312.     }
  313. }
  314.  
  315. /*************************************************************************/
  316.  
  317. #if DRODBAR
  318. #define TITLE_CHKSUM  0x7DAE
  319.  
  320. ushort Title [1772] = {
  321.     0x993A, 0x99A2, 0x99A6, 0x99A2, 0x99A8, 0x99AD, 0x99BB, 0x99AF, 
  322.     0x99A4, 0x99B6, 0x99AC, 0x99BE, 0x99B3, 0x99BF, 0x99BC, 0x99B0,
  323.     0x99A4, 0x99A1, 0x99BF, 0x99B7, 0x99AF, 0x99B1, 0x99B6, 0x99A1,
  324.     0x99AE, 0x99B5, 0x99AC, 0x99AB, 0x99BB, 0x99A8, 0x99B1, 0x99A3, 
  325.     0x99AB, 0x99A9, 0x99B6, 0x99BE, 0x99AB, 0x99AB, 0x99A9, 0x99BC, 
  326.     0x99B9, 0x99B8, 0x99B2, 0x99B8, 0x99A4, 0x99A7, 0x99AE, 0x99B4,
  327.     0x99A7, 0x99BF, 0x99AB, 0x99A4, 0x99A3, 0x99AC, 0x99A4, 0x99BA,
  328.     0x99BB, 0x99A2, 0x99BE, 0x99B1, 0x99B5, 0x99AF, 0x99A2, 0x99BD, 
  329.     0x99AE, 0x99A6, 0x99BD, 0x99B3, 0x99BE, 0x99A9, 0x99B5, 0x99B5, 
  330.     0x99AD, 0x99B6, 0x99AD, 0x9761, 0x4054, 0x9754, 0x4104, 0x4102,
  331.     0x4100, 0x4100, 0x4102, 0x4106, 0x4103, 0x4103, 0x4104, 0x4102, 
  332.     0x4104, 0x4107, 0x4100, 0x4103, 0x4101, 0x4101, 0x4103, 0x4105, 
  333.     0x4103, 0x4210, 0x4102, 0x4101, 0x4101, 0x420F, 0x4107, 0x4103, 
  334.     0x4100, 0x421F, 0x4105, 0x4101, 0x4102, 0x4259, 0x4106, 0x4102, 
  335.     0x4106, 0x423A, 0x4104, 0x4106, 0x4107, 0x420F, 0x4106, 0x4102, 
  336.     0x4100, 0x426B, 0x4104, 0x4107, 0x4107, 0x426E, 0x4104, 0x4104,
  337.     0x4100, 0x4278, 0x4107, 0x4100, 0x4105, 0x4276, 0x4107, 0x4104, 
  338.     0x4103, 0x4104, 0x4102, 0x4100, 0x4107, 0x4104, 0x4104, 0x4104,
  339.     0x4101, 0x4105, 0x4101, 0x4103, 0x4100, 0x4100, 0x4101, 0x4103, 
  340.     0x9747, 0x4056, 0x9758, 0x4107, 0x4100, 0x4106, 0x4105, 0x4100,
  341.     0x4107, 0x4105, 0x4102, 0x4100, 0x4101, 0x4106, 0x4104, 0x4101, 
  342.     0x4105, 0x4105, 0x4104, 0x4106, 0x4102, 0x4106, 0x4106, 0x4101, 
  343.     0x4141, 0x431B, 0x4148, 0x4104, 0x418D, 0x41CD, 0x41CF, 0x419B,
  344.     0x4102, 0x4102, 0x427D, 0x4101, 0x4173, 0x4107, 0x4236, 0x4102,
  345.     0x4177, 0x4100, 0x4294, 0x4101, 0x420D, 0x4106, 0x4277, 0x4103, 
  346.     0x429E, 0x4101, 0x422A, 0x4103, 0x4273, 0x4106, 0x4103, 0x4107, 
  347.     0x4107, 0x4101, 0x4103, 0x4103, 0x4107, 0x4106, 0x4106, 0x4104, 
  348.     0x4100, 0x4105, 0x4103, 0x4107, 0x4100, 0x4104, 0x4106, 0x4102, 
  349.     0x4101, 0x4101, 0x4105, 0x4104, 0x4102, 0x974F, 0x4050, 0x9990,
  350.     0x99AE, 0x99B0, 0x99B6, 0x99B8, 0x99B2, 0x99A5, 0x99AD, 0x99BF, 
  351.     0x99BA, 0x99A2, 0x99A8, 0x99A7, 0x99A4, 0x99BC, 0x99BF, 0x99AC, 
  352.     0x99B1, 0x99B7, 0x99B2, 0x99B8, 0x99A0, 0x99AB, 0x99A6, 0x99A9, 
  353.     0x99AB, 0x99B7, 0x99A4, 0x99BF, 0x99A6, 0x99A9, 0x99AF, 0x99AA,
  354.     0x99B6, 0x99AB, 0x99A6, 0x99B3, 0x99B0, 0x99B2, 0x99BA, 0x99AA, 
  355.     0x99B3, 0x99A3, 0x99B0, 0x99B0, 0x99A7, 0x99A7, 0x99B9, 0x99A5, 
  356.     0x99B6, 0x99B1, 0x99B1, 0x99B4, 0x99A9, 0x99AD, 0x99B6, 0x99BD,
  357.     0x99A7, 0x99AA, 0x99AB, 0x99A3, 0x99AC, 0x99AB, 0x99AC, 0x99B8, 
  358.     0x99A6, 0x99AA, 0x99B3, 0x99A5, 0x99B4, 0x99AE, 0x99AB, 0x99BE, 
  359.     0x99A1, 0x99AF, 0x9733, 0x4055, 0x975D, 0x4106, 0x42A6, 0x4346, 
  360.     0x434D, 0x439A, 0x4101, 0x434B, 0x439E, 0x4101, 0x431E, 0x4340, 
  361.     0x430D, 0x4394, 0x4348, 0x43A1, 0x43C9, 0x4105, 0x43BF, 0x430A, 
  362.     0x4394, 0x432D, 0x4164, 0x4107, 0x4386, 0x4360, 0x432F, 0x430D,
  363.     0x439C, 0x432C, 0x4100, 0x4320, 0x4378, 0x4372, 0x430D, 0x43A6, 
  364.     0x4328, 0x4103, 0x418A, 0x41AD, 0x4104, 0x42AF, 0x429E, 0x4100, 
  365.     0x4224, 0x437A, 0x4364, 0x4367, 0x430F, 0x4390, 0x439F, 0x4107, 
  366.     0x437A, 0x4392, 0x4103, 0x418F, 0x4187, 0x4101, 0x42A8, 0x425D,
  367.     0x4104, 0x4282, 0x4379, 0x43A8, 0x4377, 0x4323, 0x439D, 0x4107, 
  368.     0x437F, 0x4394, 0x4104, 0x43A2, 0x4345, 0x4329, 0x4105, 0x975F, 
  369.     0x4054, 0x9747, 0x4107, 0x432F, 0x438D, 0x43AC, 0x434D, 0x43B1,
  370.     0x430F, 0x4364, 0x432E, 0x4377, 0x43A6, 0x4101, 0x43A4, 0x4378, 
  371.     0x4102, 0x4102, 0x4104, 0x420E, 0x426A, 0x4270, 0x422F, 0x4298, 
  372.     0x42A1, 0x42CC, 0x4107, 0x424A, 0x4270, 0x42A5, 0x422C, 0x4293, 
  373.     0x4275, 0x4208, 0x42A0, 0x4248, 0x427C, 0x4270, 0x4209, 0x4267, 
  374.     0x4103, 0x4101, 0x437E, 0x4396, 0x4103, 0x4107, 0x423C, 0x4295,
  375.     0x422D, 0x422C, 0x4272, 0x4280, 0x4229, 0x4209, 0x421B, 0x4229,
  376.     0x4176, 0x4104, 0x4242, 0x432D, 0x4366, 0x4383, 0x4103, 0x43A6, 
  377.     0x4340, 0x4328, 0x4101, 0x43B1, 0x434A, 0x431D, 0x43A3, 0x4349, 
  378.     0x436F, 0x4399, 0x4103, 0x4103, 0x974F, 0x4054, 0x9740, 0x4103, 
  379.     0x437D, 0x4337, 0x4103, 0x43A7, 0x437D, 0x4397, 0x43A0, 0x43AA,
  380.     0x4396, 0x432B, 0x4107, 0x430B, 0x4375, 0x4324, 0x4102, 0x4387,
  381.     0x437C, 0x4365, 0x4360, 0x43AC, 0x43A1, 0x434A, 0x437A, 0x4377, 
  382.     0x4162, 0x4105, 0x430D, 0x4370, 0x4321, 0x4107, 0x4340, 0x432C,
  383.     0x4363, 0x4384, 0x4107, 0x43A3, 0x437E, 0x4102, 0x4380, 0x4393, 
  384.     0x432A, 0x43B2, 0x432C, 0x4375, 0x43A7, 0x4100, 0x4331, 0x43AE, 
  385.     0x43A1, 0x43AF, 0x4396, 0x4328, 0x4101, 0x4308, 0x4310, 0x43A9, 
  386.     0x439D, 0x432D, 0x439B, 0x4104, 0x4379, 0x4331, 0x4104, 0x4387, 
  387.     0x437E, 0x43BA, 0x432D, 0x4395, 0x4102, 0x4311, 0x43C9, 0x4104, 
  388.     0x4101, 0x9751, 0x4052, 0x9741, 0x4104, 0x4106, 0x4100, 0x4103,
  389.     0x4100, 0x4107, 0x43A3, 0x4345, 0x4329, 0x4107, 0x432B, 0x43C0, 
  390.     0x43A6, 0x4390, 0x432F, 0x436F, 0x432F, 0x4101, 0x4363, 0x432C, 
  391.     0x4336, 0x43A2, 0x4167, 0x4103, 0x43A3, 0x4345, 0x432C, 0x4106, 
  392.     0x432B, 0x43C7, 0x43A1, 0x4390, 0x432A, 0x436E, 0x432E, 0x4106,
  393.     0x4397, 0x434D, 0x433F, 0x4343, 0x43A1, 0x4106, 0x430C, 0x4372, 
  394.     0x4327, 0x4107, 0x43A7, 0x4341, 0x432C, 0x4100, 0x432E, 0x43C3, 
  395.     0x43A3, 0x4394, 0x432B, 0x436E, 0x4328, 0x4105, 0x4319, 0x432F,
  396.     0x4371, 0x43A4, 0x4328, 0x4393, 0x4173, 0x4101, 0x4104, 0x4107, 
  397.     0x4101, 0x4100, 0x4101, 0x4102, 0x4101, 0x4106, 0x974B, 0x4050, 
  398.     0x998F, 0x99A2, 0x99A4, 0x99B2, 0x99B7, 0x99A6, 0x99A5, 0x99B4,
  399.     0x99BE, 0x99AF, 0x99B2, 0x99AF, 0x99BA, 0x99AA, 0x99B8, 0x99B8, 
  400.     0x99A2, 0x99B2, 0x99B1, 0x99B0, 0x99AF, 0x99B7, 0x99BA, 0x99AE, 
  401.     0x99B3, 0x99B1, 0x99B3, 0x99AA, 0x99B9, 0x99A6, 0x99B7, 0x99AB,
  402.     0x99BF, 0x99B8, 0x99BE, 0x99B2, 0x99B1, 0x99B2, 0x99B0, 0x99A7, 
  403.     0x99A6, 0x99B3, 0x99AB, 0x99A5, 0x99BF, 0x99BB, 0x99B8, 0x99A2, 
  404.     0x99BE, 0x99B6, 0x99AA, 0x99A1, 0x99A4, 0x99A8, 0x99B8, 0x99BB, 
  405.     0x99AF, 0x99B8, 0x99BB, 0x99AB, 0x99B2, 0x99BE, 0x99AA, 0x99B9,
  406.     0x99B6, 0x99B1, 0x99B4, 0x99A9, 0x99B1, 0x99AC, 0x99BF, 0x99A5, 
  407.     0x99A4, 0x99A1, 0x99A0, 0x9727, 0x4052, 0x9742, 0x4103, 0x4103, 
  408.     0x4106, 0x4103, 0x421C, 0x4105, 0x42AC, 0x4103, 0x429D, 0x4106,
  409.     0x42A4, 0x4103, 0x427A, 0x4105, 0x426C, 0x4100, 0x4102, 0x4103, 
  410.     0x4244, 0x4106, 0x4208, 0x4107, 0x4297, 0x4105, 0x4221, 0x4104,
  411.     0x42BF, 0x4101, 0x420F, 0x4107, 0x4290, 0x4104, 0x422F, 0x4105, 
  412.     0x4101, 0x4106, 0x4137, 0x4104, 0x4107, 0x4100, 0x429B, 0x4100, 
  413.     0x427B, 0x4105, 0x4230, 0x4100, 0x42A5, 0x4102, 0x42B8, 0x4102, 
  414.     0x420A, 0x4107, 0x4290, 0x4105, 0x422B, 0x4105, 0x4100, 0x4105,
  415.     0x4227, 0x4102, 0x422A, 0x4104, 0x429B, 0x4103, 0x424D, 0x4106, 
  416.     0x423F, 0x4102, 0x4272, 0x4105, 0x4103, 0x4100, 0x4100, 0x4107,
  417.     0x974A, 0x4054, 0x975C, 0x4105, 0x4107, 0x4104, 0x4104, 0x4105, 
  418.     0x4107, 0x4103, 0x4105, 0x4101, 0x4106, 0x4104, 0x4102, 0x4101,
  419.     0x4104, 0x4105, 0x4107, 0x4106, 0x4102, 0x4107, 0x4105, 0x4100, 
  420.     0x4100, 0x4105, 0x4107, 0x4102, 0x4102, 0x4103, 0x4105, 0x4105, 
  421.     0x4104, 0x4101, 0x4100, 0x4102, 0x4101, 0x4107, 0x4106, 0x4103,
  422.     0x4103, 0x4103, 0x4107, 0x4104, 0x4107, 0x4100, 0x4100, 0x4106, 
  423.     0x4107, 0x4101, 0x4106, 0x4105, 0x4105, 0x4107, 0x4106, 0x4102, 
  424.     0x4105, 0x4107, 0x4104, 0x4102, 0x4103, 0x4100, 0x4102, 0x4100, 
  425.     0x4106, 0x4103, 0x4102, 0x4100, 0x4104, 0x4103, 0x4105, 0x4106, 
  426.     0x4106, 0x4106, 0x4106, 0x4107, 0x4106, 0x9754, 0x4051, 0x9756, 
  427.     0x4107, 0x4107, 0x4101, 0x4100, 0x4105, 0x4104, 0x4102, 0x4104,
  428.     0x4105, 0x4101, 0x4152, 0x4105, 0x420F, 0x43A8, 0x43A6, 0x437A,
  429.     0x431A, 0x430A, 0x4323, 0x4100, 0x418F, 0x4187, 0x4163, 0x418D, 
  430.     0x4189, 0x4165, 0x4189, 0x4190, 0x4164, 0x4106, 0x420F, 0x4227, 
  431.     0x429D, 0x4167, 0x4107, 0x420A, 0x43A9, 0x43A5, 0x437F, 0x4265,
  432.     0x4249, 0x429B, 0x4281, 0x4103, 0x4224, 0x432A, 0x43B3, 0x4329, 
  433.     0x4367, 0x4378, 0x4383, 0x4368, 0x432A, 0x4373, 0x43A6, 0x4170, 
  434.     0x4103, 0x4107, 0x4101, 0x4101, 0x4100, 0x4106, 0x4100, 0x4103,
  435.     0x4107, 0x4100, 0x4107, 0x4100, 0x4101, 0x4103, 0x4106, 0x4107, 
  436.     0x4100, 0x4104, 0x9751, 0x4054, 0x9745, 0x4107, 0x4107, 0x4107, 
  437.     0x4105, 0x4103, 0x4102, 0x4102, 0x4105, 0x4101, 0x4107, 0x4157, 
  438.     0x4105, 0x42BD, 0x434F, 0x4370, 0x4322, 0x437E, 0x43BE, 0x4398, 
  439.     0x4107, 0x419B, 0x4102, 0x4233, 0x4396, 0x437E, 0x4377, 0x43A1, 
  440.     0x416A, 0x422D, 0x4371, 0x4320, 0x4107, 0x4226, 0x432B, 0x43B3,
  441.     0x432D, 0x4363, 0x437F, 0x4385, 0x4369, 0x432E, 0x4376, 0x43A2, 
  442.     0x4175, 0x4107, 0x4100, 0x4107, 0x4103, 0x4103, 0x4107, 0x4100, 
  443.     0x4105, 0x4107, 0x4100, 0x4103, 0x4107, 0x4105, 0x4102, 0x4103, 
  444.     0x4107, 0x4105, 0x4103, 0x4100, 0x4104, 0x4100, 0x4107, 0x4104,
  445.     0x4106, 0x4101, 0x4103, 0x4100, 0x4105, 0x4105, 0x4102, 0x9759, 
  446.     0x4056, 0x9754, 0x4107, 0x4105, 0x4102, 0x4100, 0x4103, 0x4102,
  447.     0x4107, 0x4105, 0x4100, 0x4100, 0x4154, 0x4101, 0x41C6, 0x4105,
  448.     0x4310, 0x434D, 0x43A5, 0x4162, 0x4103, 0x418D, 0x41B3, 0x4104, 
  449.     0x4310, 0x434D, 0x43A6, 0x4165, 0x4102, 0x419C, 0x4195, 0x4104, 
  450.     0x4215, 0x434D, 0x43A3, 0x4102, 0x422F, 0x436A, 0x4314, 0x432E, 
  451.     0x4327, 0x4324, 0x432C, 0x4323, 0x4105, 0x4219, 0x437C, 0x4370, 
  452.     0x43A4, 0x4395, 0x4378, 0x4367, 0x4364, 0x432C, 0x4396, 0x439A,
  453.     0x4174, 0x4106, 0x4100, 0x4103, 0x4106, 0x4103, 0x4105, 0x4103,
  454.     0x4104, 0x4101, 0x4103, 0x4106, 0x4102, 0x4104, 0x4100, 0x4104, 
  455.     0x4104, 0x4105, 0x4102, 0x4102, 0x9743, 0x4056, 0x9745, 0x4102, 
  456.     0x4103, 0x4104, 0x4104, 0x4100, 0x4100, 0x4105, 0x4101, 0x4106, 
  457.     0x4101, 0x4154, 0x4101, 0x424A, 0x4373, 0x439B, 0x43A3, 0x4396,
  458.     0x43AA, 0x4369, 0x4328, 0x4371, 0x43A4, 0x430C, 0x43A1, 0x434C, 
  459.     0x437F, 0x4377, 0x4103, 0x430E, 0x4375, 0x4327, 0x4106, 0x424C, 
  460.     0x4376, 0x4322, 0x43A8, 0x439B, 0x43A6, 0x4392, 0x434D, 0x4308,
  461.     0x4367, 0x4101, 0x4269, 0x434A, 0x4319, 0x4394, 0x437F, 0x431E, 
  462.     0x437F, 0x4374, 0x43A2, 0x4393, 0x437C, 0x4362, 0x4365, 0x432E, 
  463.     0x4397, 0x439B, 0x4177, 0x4100, 0x4104, 0x4105, 0x4102, 0x4106, 
  464.     0x4104, 0x4101, 0x4106, 0x4102, 0x4106, 0x4100, 0x4107, 0x4100,
  465.     0x4106, 0x9752, 0x4057, 0x975B, 0x4106, 0x4105, 0x4100, 0x4101, 
  466.     0x4103, 0x4103, 0x4101, 0x4104, 0x4103, 0x4107, 0x4154, 0x4102,
  467.     0x4194, 0x4221, 0x4106, 0x430F, 0x4377, 0x4327, 0x4100, 0x4199, 
  468.     0x4225, 0x4106, 0x421C, 0x437B, 0x4369, 0x4382, 0x43AA, 0x43A7, 
  469.     0x432F, 0x4392, 0x4104, 0x423D, 0x4394, 0x430F, 0x4380, 0x4341, 
  470.     0x434F, 0x431D, 0x439D, 0x4174, 0x4100, 0x4103, 0x4100, 0x4100,
  471.     0x4107, 0x4100, 0x4100, 0x4102, 0x4106, 0x4106, 0x4107, 0x4103, 
  472.     0x4102, 0x4104, 0x4103, 0x4100, 0x4106, 0x4106, 0x4105, 0x4103, 
  473.     0x4101, 0x4107, 0x4100, 0x4101, 0x4102, 0x4101, 0x4105, 0x4104,
  474.     0x4103, 0x4104, 0x4105, 0x4103, 0x4103, 0x4105, 0x9758, 0x4051, 
  475.     0x974E, 0x4101, 0x4104, 0x4103, 0x4101, 0x4102, 0x4100, 0x4106, 
  476.     0x4102, 0x4100, 0x4103, 0x4150, 0x4105, 0x421C, 0x437F, 0x436D, 
  477.     0x4385, 0x43A9, 0x43A3, 0x432D, 0x4391, 0x439C, 0x4100, 0x430C, 
  478.     0x4375, 0x4325, 0x4102, 0x4219, 0x437C, 0x4366, 0x437B, 0x43AB, 
  479.     0x4394, 0x4173, 0x4103, 0x4101, 0x4101, 0x4102, 0x4103, 0x4101,
  480.     0x4105, 0x4105, 0x4103, 0x4103, 0x4107, 0x4105, 0x4101, 0x4105, 
  481.     0x4102, 0x4101, 0x4104, 0x4102, 0x4100, 0x4107, 0x4101, 0x4107, 
  482.     0x4107, 0x4102, 0x4104, 0x4107, 0x4104, 0x4105, 0x4102, 0x4107,
  483.     0x4106, 0x4107, 0x4105, 0x4104, 0x4105, 0x4107, 0x4100, 0x4103,
  484.     0x4103, 0x4101, 0x4105, 0x9740, 0x4052, 0x9749, 0x4103, 0x4104, 
  485.     0x4100, 0x4107, 0x4105, 0x4100, 0x4107, 0x4103, 0x4100, 0x4107, 
  486.     0x4150, 0x4103, 0x4293, 0x430B, 0x43CA, 0x4103, 0x42A5, 0x4396,
  487.     0x430E, 0x431C, 0x434A, 0x4374, 0x433D, 0x4100, 0x430F, 0x4376, 
  488.     0x4325, 0x4104, 0x4287, 0x4341, 0x4379, 0x43A7, 0x437D, 0x4390,
  489.     0x432F, 0x430A, 0x4364, 0x4348, 0x439F, 0x4368, 0x4174, 0x4103, 
  490.     0x4101, 0x4107, 0x4107, 0x4106, 0x4106, 0x4107, 0x4104, 0x4106, 
  491.     0x4103, 0x4103, 0x4102, 0x4101, 0x4102, 0x4106, 0x4107, 0x4101, 
  492.     0x4102, 0x4107, 0x4102, 0x4105, 0x4101, 0x4100, 0x4107, 0x4103,
  493.     0x4100, 0x4103, 0x4102, 0x4100, 0x4106, 0x4105, 0x4107, 0x4103, 
  494.     0x9749, 0x4057, 0x9740, 0x4101, 0x4101, 0x4102, 0x4106, 0x4101, 
  495.     0x4105, 0x4104, 0x4104, 0x4103, 0x4103, 0x4150, 0x4101, 0x42A4, 
  496.     0x4393, 0x430A, 0x4376, 0x439C, 0x4384, 0x43AB, 0x43A0, 0x432C,
  497.     0x4392, 0x4399, 0x4107, 0x430A, 0x4377, 0x4323, 0x4107, 0x4287, 
  498.     0x4308, 0x4393, 0x430D, 0x4363, 0x4362, 0x432C, 0x4364, 0x4106, 
  499.     0x4285, 0x4396, 0x4379, 0x431A, 0x4328, 0x439F, 0x439D, 0x434E,
  500.     0x4376, 0x433C, 0x4173, 0x4107, 0x4101, 0x4101, 0x4102, 0x4102,
  501.     0x4105, 0x4105, 0x4103, 0x4105, 0x4107, 0x4101, 0x4105, 0x4106, 
  502.     0x4106, 0x4102, 0x4107, 0x4103, 0x4101, 0x4104, 0x4107, 0x4104, 
  503.     0x4102, 0x4101, 0x4102, 0x4106, 0x4102, 0x974B, 0x4053, 0x9741, 
  504.     0x4106, 0x4106, 0x4100, 0x4104, 0x4101, 0x4101, 0x4103, 0x4107, 
  505.     0x4102, 0x4106, 0x4105, 0x4100, 0x4100, 0x4100, 0x4100, 0x4102,
  506.     0x4104, 0x4104, 0x4106, 0x4103, 0x4107, 0x4103, 0x4105, 0x4105,
  507.     0x4104, 0x4107, 0x4104, 0x4107, 0x4100, 0x4103, 0x4103, 0x4104, 
  508.     0x4100, 0x4107, 0x4107, 0x4104, 0x4102, 0x4104, 0x4103, 0x4102, 
  509.     0x4100, 0x4105, 0x4106, 0x4105, 0x4101, 0x4107, 0x4102, 0x4103,
  510.     0x4101, 0x4102, 0x4102, 0x4102, 0x4103, 0x4100, 0x4106, 0x4100, 
  511.     0x4104, 0x4105, 0x4102, 0x4105, 0x4102, 0x4107, 0x4104, 0x4100, 
  512.     0x4106, 0x4100, 0x4106, 0x4107, 0x4106, 0x4102, 0x4104, 0x4103,
  513.     0x4107, 0x4102, 0x9747, 0x4053, 0x998A, 0x99AF, 0x99A1, 0x99AF, 
  514.     0x99BD, 0x99B4, 0x99B2, 0x99B8, 0x99AD, 0x99AC, 0x99BC, 0x99A5, 
  515.     0x99A9, 0x99AE, 0x99B3, 0x99A9, 0x99A9, 0x99B1, 0x99B8, 0x99B3, 
  516.     0x99A7, 0x99B9, 0x99B6, 0x99BE, 0x99BD, 0x99A2, 0x99BD, 0x99BA, 
  517.     0x99A0, 0x99AC, 0x99BD, 0x99BA, 0x99BC, 0x99A8, 0x99A7, 0x99BF, 
  518.     0x99B1, 0x99A1, 0x99A0, 0x99A4, 0x99AD, 0x99AE, 0x99A5, 0x99AC,
  519.     0x99AB, 0x99B8, 0x99A6, 0x99A9, 0x99AB, 0x99A6, 0x99BD, 0x99AE, 
  520.     0x99B3, 0x99B1, 0x99AF, 0x99B7, 0x99A5, 0x99A4, 0x99A5, 0x99B7, 
  521.     0x99A2, 0x99B4, 0x99AB, 0x99A2, 0x99BE, 0x99A1, 0x99AA, 0x99BB, 
  522.     0x99A4, 0x99AA, 0x99A2, 0x99A0, 0x99AC, 0x99B7, 0x99AB, 0x9735,
  523.     0x4053, 0x9743, 0x4104, 0x4107, 0x427B, 0x4171, 0x4234, 0x4171,
  524.     0x4293, 0x4308, 0x4370, 0x439B, 0x4328, 0x4372, 0x4165, 0x4102,
  525.     0x4265, 0x4329, 0x4338, 0x4373, 0x4308, 0x4372, 0x437A, 0x4163,
  526.     0x4106, 0x4147, 0x4269, 0x424B, 0x4149, 0x4167, 0x4104, 0x4248, 
  527.     0x42A0, 0x4208, 0x4265, 0x42C9, 0x4106, 0x4100, 0x4105, 0x4105, 
  528.     0x4106, 0x4100, 0x4103, 0x4103, 0x4106, 0x4101, 0x4105, 0x4103, 
  529.     0x4101, 0x4104, 0x4103, 0x4105, 0x4103, 0x4104, 0x4101, 0x4100, 
  530.     0x4100, 0x4106, 0x4105, 0x4235, 0x430D, 0x43C5, 0x41D0, 0x4105, 
  531.     0x4182, 0x419F, 0x4199, 0x4189, 0x4106, 0x41A3, 0x4187, 0x41A0,
  532.     0x419C, 0x418E, 0x41C6, 0x4106, 0x975D, 0x4054, 0x990D, 0x99A2, 
  533.     0x99BF, 0x99BC, 0x99AD, 0x99A0, 0x99B6, 0x99BF, 0x99B6, 0x99A8,
  534.     0x99A9, 0x99BA, 0x99B5, 0x99BF, 0x99AF, 0x99A9, 0x99B1, 0x99AC, 
  535.     0x99A9, 0x99BF, 0x99BF, 0x99AD, 0x99A2, 0x99AB, 0x99A3, 0x99BC,
  536.     0x99A5, 0x99AD, 0x99AA, 0x99BB, 0x99BF, 0x99B9, 0x99A4, 0x99A7,
  537.     0x99B6, 0x99AA, 0x99A6, 0x99BC, 0x99A9, 0x99AA, 0x99A0, 0x99A5, 
  538.     0x99A9, 0x99A1, 0x99BB, 0x99A7, 0x99B7, 0x99BD, 0x99B6, 0x99AE,
  539.     0x99BE, 0x99A0, 0x99A1, 0x99B7, 0x99B2, 0x99B0, 0x99BA, 0x99BF,
  540.     0x99AA, 0x99BA, 0x99A7, 0x99AC, 0x99BC, 0x99A8, 0x99B4, 0x99BB,
  541.     0x99B7, 0x99A5, 0x99AE, 0x99A9, 0x99A5, 0x99AE, 0x99A0, 0x99A5,
  542.     0x99A1, 0x979C, 0x4055, 0xFFFF};
  543. #else
  544.  
  545. #define TITLE_CHKSUM  0x51B7
  546.  
  547. #define TITLE_LENGTH    1772
  548.  
  549. ushort Title [TITLE_LENGTH] = {
  550.     0x993A, 0x99A2, 0x99A6, 0x99A2, 0x99A8, 0x99AD, 0x99BB, 0x99AF, 
  551.     0x99A4, 0x99B6, 0x99AC, 0x99BE, 0x99B3, 0x99BF, 0x99BC, 0x99B0, 
  552.     0x99A4, 0x99A1, 0x99BF, 0x99B7, 0x99AF, 0x99B1, 0x99B6, 0x99A1, 
  553.     0x99AE, 0x99B5, 0x99AC, 0x99AB, 0x99BB, 0x99A8, 0x99B1, 0x99A3, 
  554.     0x99AB, 0x99A9, 0x99B6, 0x99BE, 0x99AB, 0x99AB, 0x99A9, 0x99BC, 
  555.     0x99B9, 0x99B8, 0x99B2, 0x99B8, 0x99A4, 0x99A7, 0x99AE, 0x99B4, 
  556.     0x99A7, 0x99BF, 0x99AB, 0x99A4, 0x99A3, 0x99AC, 0x99A4, 0x99BA, 
  557.     0x99BB, 0x99A2, 0x99BE, 0x99B1, 0x99B5, 0x99AF, 0x99A2, 0x99BD, 
  558.     0x99AE, 0x99A6, 0x99BD, 0x99B3, 0x99BE, 0x99A9, 0x99B5, 0x99B5, 
  559.     0x99AD, 0x99B6, 0x99AD, 0x9761, 0x4054, 0x9754, 0x4104, 0x4102, 
  560.     0x4100, 0x4100, 0x4102, 0x4106, 0x4103, 0x4103, 0x4104, 0x4102, 
  561.     0x4104, 0x4107, 0x4100, 0x4103, 0x4101, 0x4101, 0x4103, 0x4105, 
  562.     0x4103, 0x4210, 0x4102, 0x4101, 0x4101, 0x420F, 0x4107, 0x4103, 
  563.     0x4100, 0x421F, 0x4105, 0x4101, 0x4102, 0x4259, 0x4106, 0x4102, 
  564.     0x4106, 0x423A, 0x4104, 0x4106, 0x4107, 0x420F, 0x4106, 0x4102, 
  565.     0x4100, 0x426B, 0x4104, 0x4107, 0x4107, 0x426E, 0x4104, 0x4104, 
  566.     0x4100, 0x4278, 0x4107, 0x4100, 0x4105, 0x4276, 0x4107, 0x4104, 
  567.     0x4103, 0x4104, 0x4102, 0x4100, 0x4107, 0x4104, 0x4104, 0x4104, 
  568.     0x4101, 0x4105, 0x4101, 0x4103, 0x4100, 0x4100, 0x4101, 0x4103, 
  569.     0x9747, 0x4056, 0x9758, 0x4107, 0x4100, 0x4106, 0x4105, 0x4100, 
  570.     0x4107, 0x4105, 0x4102, 0x4100, 0x4101, 0x4106, 0x4104, 0x4101, 
  571.     0x4105, 0x4105, 0x4104, 0x4106, 0x4102, 0x4106, 0x4106, 0x4101, 
  572.     0x4101, 0x4103, 0x4100, 0x4104, 0x4105, 0x4105, 0x4107, 0x4103, 
  573.     0x4102, 0x4102, 0x4105, 0x4101, 0x4103, 0x4107, 0x4106, 0x4102, 
  574.     0x4107, 0x4100, 0x4104, 0x4101, 0x4105, 0x4106, 0x4107, 0x4103, 
  575.     0x4106, 0x4101, 0x4102, 0x4103, 0x4103, 0x4106, 0x4103, 0x4107, 
  576.     0x4107, 0x4101, 0x4103, 0x4103, 0x4107, 0x4106, 0x4106, 0x4104, 
  577.     0x4100, 0x4105, 0x4103, 0x4107, 0x4100, 0x4104, 0x4106, 0x4102, 
  578.     0x4101, 0x4101, 0x4105, 0x4104, 0x4102, 0x974F, 0x4050, 0x9750, 
  579.     0x4106, 0x4100, 0x4106, 0x4100, 0x4102, 0x4105, 0x4105, 0x4107, 
  580.     0x4102, 0x4102, 0x4100, 0x4107, 0x4104, 0x4104, 0x4107, 0x4104, 
  581.     0x4101, 0x4107, 0x4102, 0x4100, 0x4100, 0x4143, 0x431E, 0x4149, 
  582.     0x4103, 0x418F, 0x41CC, 0x41CF, 0x41A6, 0x4101, 0x4107, 0x421A, 
  583.     0x4106, 0x42AB, 0x4106, 0x429B, 0x4100, 0x42A2, 0x4102, 0x427A, 
  584.     0x4103, 0x426B, 0x4100, 0x4208, 0x4107, 0x42A7, 0x4101, 0x424D, 
  585.     0x4106, 0x42C1, 0x4101, 0x4104, 0x4101, 0x4105, 0x4106, 0x4105, 
  586.     0x4107, 0x4102, 0x4103, 0x4103, 0x4104, 0x4103, 0x4104, 0x4100, 
  587.     0x4106, 0x4102, 0x4103, 0x4105, 0x4104, 0x4106, 0x4103, 0x4106, 
  588.     0x4101, 0x4107, 0x9753, 0x4055, 0x975D, 0x4106, 0x4106, 0x4106, 
  589.     0x4105, 0x4102, 0x4101, 0x4103, 0x4106, 0x4101, 0x4106, 0x4100, 
  590.     0x4105, 0x4104, 0x4100, 0x4101, 0x4101, 0x4105, 0x4107, 0x4102, 
  591.     0x4104, 0x4105, 0x4104, 0x4107, 0x4106, 0x4100, 0x4107, 0x4105, 
  592.     0x4104, 0x4104, 0x4100, 0x4100, 0x4100, 0x4102, 0x4105, 0x4106, 
  593.     0x4100, 0x4103, 0x4102, 0x4105, 0x4104, 0x4107, 0x4106, 0x4100, 
  594.     0x4104, 0x4102, 0x4104, 0x4107, 0x4107, 0x4100, 0x4107, 0x4107, 
  595.     0x4102, 0x4102, 0x4103, 0x4107, 0x4107, 0x4101, 0x4100, 0x4105, 
  596.     0x4104, 0x4102, 0x4101, 0x4100, 0x4107, 0x4103, 0x4105, 0x4107, 
  597.     0x4107, 0x4104, 0x4104, 0x4102, 0x4105, 0x4101, 0x4105, 0x975F, 
  598.     0x4054, 0x9987, 0x99A7, 0x99A7, 0x99BD, 0x99B4, 0x99B5, 0x99A9, 
  599.     0x99AF, 0x99AC, 0x99B6, 0x99B7, 0x99B6, 0x99A9, 0x99A4, 0x99A8, 
  600.     0x99BA, 0x99BA, 0x99AC, 0x99A6, 0x99AA, 0x99B0, 0x99A7, 0x99B8, 
  601.     0x99B9, 0x99A4, 0x99B7, 0x99B2, 0x99B8, 0x99AD, 0x99A4, 0x99BB, 
  602.     0x99B5, 0x99A0, 0x99B8, 0x99A0, 0x99B4, 0x99A8, 0x99B9, 0x99B7, 
  603.     0x99AB, 0x99A9, 0x99A6, 0x99B6, 0x99A3, 0x99AF, 0x99B4, 0x99B5, 
  604.     0x99AD, 0x99BC, 0x99AA, 0x99A0, 0x99A1, 0x99B1, 0x99BB, 0x99A1, 
  605.     0x99BE, 0x99BC, 0x99A2, 0x99AD, 0x99BE, 0x99A3, 0x99A3, 0x99AE, 
  606.     0x99B8, 0x99B0, 0x99A1, 0x99B1, 0x99BA, 0x99BD, 0x99BB, 0x99B1, 
  607.     0x99A7, 0x99A1, 0x99AB, 0x99A3, 0x972F, 0x4054, 0x9740, 0x4103, 
  608.     0x4105, 0x4107, 0x4103, 0x421F, 0x4105, 0x42AF, 0x4100, 0x429A, 
  609.     0x4106, 0x42A3, 0x4107, 0x427B, 0x4105, 0x426C, 0x4102, 0x4107, 
  610.     0x4104, 0x4245, 0x4100, 0x420C, 0x4101, 0x4292, 0x4102, 0x4227, 
  611.     0x4102, 0x42BD, 0x4105, 0x4208, 0x4101, 0x4297, 0x4100, 0x422C, 
  612.     0x4103, 0x4104, 0x4107, 0x4133, 0x4106, 0x4102, 0x4100, 0x429B, 
  613.     0x4102, 0x427A, 0x4104, 0x4235, 0x4107, 0x42A0, 0x4101, 0x42BE, 
  614.     0x4101, 0x420F, 0x4106, 0x4290, 0x4101, 0x4228, 0x4100, 0x4101, 
  615.     0x4105, 0x4225, 0x4103, 0x422C, 0x4101, 0x4299, 0x4104, 0x424F, 
  616.     0x4106, 0x423A, 0x4105, 0x4275, 0x4102, 0x4101, 0x4101, 0x4104, 
  617.     0x4101, 0x9751, 0x4052, 0x9741, 0x4104, 0x4106, 0x4100, 0x4103, 
  618.     0x4100, 0x4107, 0x4103, 0x4105, 0x4101, 0x4107, 0x4103, 0x4100, 
  619.     0x4106, 0x4100, 0x4107, 0x4107, 0x4107, 0x4101, 0x4103, 0x4104, 
  620.     0x4106, 0x4102, 0x4107, 0x4103, 0x4103, 0x4105, 0x4104, 0x4106, 
  621.     0x4103, 0x4107, 0x4101, 0x4100, 0x4102, 0x4106, 0x4106, 0x4106, 
  622.     0x4107, 0x4105, 0x4107, 0x4103, 0x4101, 0x4106, 0x4104, 0x4102, 
  623.     0x4107, 0x4107, 0x4107, 0x4101, 0x4104, 0x4100, 0x4106, 0x4103, 
  624.     0x4103, 0x4104, 0x4103, 0x4106, 0x4100, 0x4105, 0x4101, 0x4107, 
  625.     0x4101, 0x4104, 0x4100, 0x4103, 0x4103, 0x4101, 0x4104, 0x4107, 
  626.     0x4101, 0x4100, 0x4101, 0x4102, 0x4101, 0x4106, 0x974B, 0x4050, 
  627.     0x974F, 0x4102, 0x4154, 0x4102, 0x429F, 0x43B6, 0x434D, 0x4364, 
  628.     0x43AE, 0x4387, 0x4382, 0x437F, 0x4102, 0x432A, 0x4100, 0x4380, 
  629.     0x432A, 0x4392, 0x4399, 0x4378, 0x4377, 0x430F, 0x4362, 0x434E, 
  630.     0x43D3, 0x43D1, 0x430B, 0x43D2, 0x4349, 0x437E, 0x4377, 0x432B, 
  631.     0x4107, 0x4208, 0x43AE, 0x43A2, 0x4379, 0x421A, 0x4208, 0x4227, 
  632.     0x4106, 0x418B, 0x4183, 0x4165, 0x418F, 0x418B, 0x4160, 0x418A, 
  633.     0x4196, 0x4106, 0x4142, 0x4209, 0x4224, 0x4298, 0x4160, 0x420B, 
  634.     0x43AF, 0x43A0, 0x437B, 0x4263, 0x424A, 0x429E, 0x4282, 0x4161, 
  635.     0x426E, 0x4371, 0x43AC, 0x4161, 0x4221, 0x421C, 0x4267, 0x414D, 
  636.     0x4174, 0x4101, 0x4100, 0x9747, 0x4052, 0x9742, 0x4103, 0x4153, 
  637.     0x4106, 0x429B, 0x43B4, 0x434D, 0x4364, 0x43AB, 0x4385, 0x4386, 
  638.     0x437C, 0x4103, 0x432A, 0x4105, 0x4384, 0x4328, 0x4392, 0x439B, 
  639.     0x437C, 0x4376, 0x4308, 0x4367, 0x434F, 0x43D5, 0x43D1, 0x430C, 
  640.     0x43D7, 0x4349, 0x437F, 0x4377, 0x4328, 0x4104, 0x4227, 0x427D, 
  641.     0x4299, 0x4166, 0x4107, 0x42BC, 0x434F, 0x4370, 0x4323, 0x4378, 
  642.     0x43BB, 0x439D, 0x4100, 0x4198, 0x4175, 0x42C2, 0x4160, 0x4102, 
  643.     0x4272, 0x42A7, 0x4100, 0x4105, 0x4103, 0x4105, 0x4100, 0x4105, 
  644.     0x4107, 0x4102, 0x4102, 0x4104, 0x4103, 0x4103, 0x4105, 0x4106, 
  645.     0x4107, 0x4102, 0x4102, 0x4105, 0x4103, 0x4100, 0x4100, 0x4107, 
  646.     0x974A, 0x4054, 0x975C, 0x4105, 0x4107, 0x4104, 0x4104, 0x4105, 
  647.     0x4147, 0x421B, 0x4165, 0x4101, 0x421E, 0x415C, 0x415A, 0x4161, 
  648.     0x4104, 0x4215, 0x430F, 0x439E, 0x434A, 0x431F, 0x4165, 0x4100, 
  649.     0x4230, 0x437D, 0x4397, 0x43A2, 0x4342, 0x4163, 0x4105, 0x420D, 
  650.     0x439C, 0x4399, 0x4328, 0x436A, 0x4311, 0x4367, 0x432E, 0x4393, 
  651.     0x4163, 0x4103, 0x4287, 0x430C, 0x439F, 0x4318, 0x4308, 0x4366, 
  652.     0x4167, 0x4101, 0x427E, 0x431D, 0x431D, 0x430F, 0x436E, 0x416A, 
  653.     0x4195, 0x4167, 0x4104, 0x426A, 0x437B, 0x4320, 0x43AA, 0x4360, 
  654.     0x430E, 0x416B, 0x4192, 0x4160, 0x4104, 0x4263, 0x424D, 0x429E, 
  655.     0x4286, 0x414E, 0x4176, 0x4107, 0x4106, 0x9754, 0x4051, 0x9756, 
  656.     0x4107, 0x4157, 0x4101, 0x4298, 0x43B5, 0x434C, 0x4362, 0x43AC, 
  657.     0x4385, 0x4381, 0x437A, 0x4105, 0x4337, 0x4348, 0x4396, 0x436A, 
  658.     0x43BA, 0x430A, 0x4393, 0x4328, 0x4167, 0x4107, 0x4383, 0x4395, 
  659.     0x4379, 0x431D, 0x4329, 0x4398, 0x439C, 0x437E, 0x4397, 0x434F, 
  660.     0x4105, 0x430F, 0x4107, 0x41C2, 0x4101, 0x4315, 0x434F, 0x43A5, 
  661.     0x4161, 0x4103, 0x4189, 0x41B3, 0x4104, 0x4312, 0x434B, 0x43A1, 
  662.     0x4167, 0x4100, 0x419B, 0x4190, 0x4102, 0x4213, 0x434E, 0x43A0, 
  663.     0x4173, 0x4107, 0x4101, 0x4101, 0x4100, 0x4106, 0x4100, 0x4103, 
  664.     0x4107, 0x4100, 0x4107, 0x4100, 0x4101, 0x4103, 0x4106, 0x4107, 
  665.     0x4100, 0x4104, 0x9751, 0x4054, 0x9745, 0x4107, 0x4157, 0x4107, 
  666.     0x429D, 0x43B3, 0x434A, 0x4362, 0x43AD, 0x4381, 0x4387, 0x437F, 
  667.     0x4105, 0x4345, 0x430F, 0x4390, 0x4322, 0x43BE, 0x430E, 0x4390, 
  668.     0x432F, 0x4163, 0x4102, 0x424B, 0x4276, 0x42A6, 0x422F, 0x4261, 
  669.     0x4162, 0x4105, 0x4269, 0x4248, 0x421F, 0x4296, 0x427B, 0x421B, 
  670.     0x4245, 0x424B, 0x4287, 0x4165, 0x4101, 0x4246, 0x424E, 0x42A2, 
  671.     0x420D, 0x421F, 0x4240, 0x424F, 0x4163, 0x4103, 0x42A7, 0x4228, 
  672.     0x42C5, 0x420F, 0x4298, 0x4163, 0x4107, 0x424D, 0x4272, 0x426B, 
  673.     0x427F, 0x429D, 0x4173, 0x4170, 0x4174, 0x4100, 0x4107, 0x4104, 
  674.     0x4106, 0x4101, 0x4103, 0x4100, 0x4105, 0x4105, 0x4102, 0x9759, 
  675.     0x4056, 0x9754, 0x4107, 0x4155, 0x4102, 0x4238, 0x4393, 0x430A, 
  676.     0x4337, 0x434D, 0x4318, 0x4308, 0x4104, 0x4329, 0x4106, 0x436D, 
  677.     0x4308, 0x4375, 0x43AD, 0x430A, 0x4363, 0x434D, 0x439B, 0x43A4, 
  678.     0x4348, 0x431D, 0x430E, 0x4105, 0x43A2, 0x432C, 0x431D, 0x4374, 
  679.     0x434D, 0x431D, 0x430B, 0x4102, 0x4387, 0x432A, 0x4394, 0x4106, 
  680.     0x430F, 0x4384, 0x4384, 0x4363, 0x434D, 0x4319, 0x430C, 0x43D0, 
  681.     0x434C, 0x437D, 0x4370, 0x432F, 0x4104, 0x4344, 0x430E, 0x4392, 
  682.     0x4324, 0x43BE, 0x4308, 0x4393, 0x432E, 0x4103, 0x432D, 0x4103, 
  683.     0x439C, 0x4379, 0x4333, 0x43A6, 0x43BA, 0x430C, 0x4390, 0x432C, 
  684.     0x4174, 0x4105, 0x4102, 0x4102, 0x9743, 0x4056, 0x9745, 0x4102, 
  685.     0x4153, 0x4104, 0x421C, 0x4378, 0x4390, 0x439D, 0x4349, 0x4106, 
  686.     0x4321, 0x434C, 0x4101, 0x4332, 0x437B, 0x4393, 0x436B, 0x430E, 
  687.     0x43D2, 0x4349, 0x4378, 0x4371, 0x432C, 0x4104, 0x4279, 0x4274, 
  688.     0x416F, 0x429F, 0x424B, 0x42A6, 0x422D, 0x4107, 0x4226, 0x427C, 
  689.     0x429E, 0x4162, 0x4100, 0x42BB, 0x434E, 0x4372, 0x4325, 0x4378, 
  690.     0x43BF, 0x4399, 0x4101, 0x432A, 0x4101, 0x421C, 0x420F, 0x4226, 
  691.     0x4177, 0x4104, 0x4102, 0x4103, 0x4104, 0x4102, 0x4105, 0x4106, 
  692.     0x4107, 0x4103, 0x4107, 0x4100, 0x4104, 0x4105, 0x4102, 0x4106, 
  693.     0x4104, 0x4101, 0x4106, 0x4102, 0x4106, 0x4100, 0x4107, 0x4100, 
  694.     0x4106, 0x9752, 0x4057, 0x975B, 0x4106, 0x4155, 0x4100, 0x4219, 
  695.     0x437B, 0x4373, 0x4399, 0x43AC, 0x4363, 0x432F, 0x4374, 0x43D2, 
  696.     0x430C, 0x4161, 0x4106, 0x430F, 0x4377, 0x430F, 0x4360, 0x4349, 
  697.     0x439D, 0x434E, 0x4104, 0x4323, 0x4349, 0x4102, 0x439A, 0x437F, 
  698.     0x4367, 0x43AA, 0x43D4, 0x434D, 0x437C, 0x4377, 0x4348, 0x4101, 
  699.     0x4347, 0x430D, 0x4395, 0x4324, 0x43B8, 0x430B, 0x4390, 0x4328, 
  700.     0x4107, 0x4328, 0x4100, 0x439A, 0x437E, 0x4336, 0x43A7, 0x43BB, 
  701.     0x430A, 0x4394, 0x432B, 0x4170, 0x4106, 0x4106, 0x4105, 0x4103, 
  702.     0x4101, 0x4107, 0x4100, 0x4101, 0x4102, 0x4101, 0x4105, 0x4104, 
  703.     0x4103, 0x4104, 0x4105, 0x4103, 0x4103, 0x4105, 0x9758, 0x4051, 
  704.     0x974E, 0x4101, 0x4154, 0x4103, 0x4269, 0x43AA, 0x4360, 0x43A6, 
  705.     0x434A, 0x4368, 0x432B, 0x4320, 0x434D, 0x430C, 0x4107, 0x432D, 
  706.     0x4105, 0x4391, 0x432B, 0x4375, 0x4321, 0x432C, 0x4390, 0x434C, 
  707.     0x4375, 0x433D, 0x4102, 0x4381, 0x432C, 0x4396, 0x4103, 0x420B, 
  708.     0x4394, 0x431B, 0x4343, 0x4349, 0x43A1, 0x432A, 0x43A3, 0x43A1, 
  709.     0x43AD, 0x4395, 0x430B, 0x4103, 0x432F, 0x4105, 0x4269, 0x432D, 
  710.     0x431A, 0x4319, 0x430C, 0x4372, 0x4348, 0x431F, 0x4309, 0x4177, 
  711.     0x4107, 0x4102, 0x4104, 0x4107, 0x4104, 0x4105, 0x4102, 0x4107, 
  712.     0x4106, 0x4107, 0x4105, 0x4104, 0x4105, 0x4107, 0x4100, 0x4103, 
  713.     0x4103, 0x4101, 0x4105, 0x9740, 0x4052, 0x9749, 0x4103, 0x4154, 
  714.     0x4100, 0x424F, 0x4375, 0x4398, 0x43A7, 0x430B, 0x4360, 0x4367, 
  715.     0x4308, 0x43D3, 0x434B, 0x437B, 0x4372, 0x432B, 0x4105, 0x4346, 
  716.     0x430E, 0x4394, 0x4322, 0x43BC, 0x430D, 0x4390, 0x432F, 0x4106, 
  717.     0x432D, 0x4104, 0x439F, 0x4379, 0x4331, 0x43A7, 0x43BD, 0x4308, 
  718.     0x4397, 0x432A, 0x4174, 0x4100, 0x4107, 0x4100, 0x4104, 0x4103, 
  719.     0x4101, 0x4107, 0x4107, 0x4106, 0x4106, 0x4107, 0x4104, 0x4106, 
  720.     0x4103, 0x4103, 0x4102, 0x4101, 0x4102, 0x4106, 0x4107, 0x4101, 
  721.     0x4102, 0x4107, 0x4102, 0x4105, 0x4101, 0x4100, 0x4107, 0x4103, 
  722.     0x4100, 0x4103, 0x4102, 0x4100, 0x4106, 0x4105, 0x4107, 0x4103, 
  723.     0x9749, 0x4057, 0x9740, 0x4101, 0x4151, 0x4102, 0x4286, 0x4391, 
  724.     0x437D, 0x433C, 0x4394, 0x430B, 0x436B, 0x4368, 0x4309, 0x43D4, 
  725.     0x434B, 0x437A, 0x4376, 0x432C, 0x4104, 0x4363, 0x4378, 0x433C, 
  726.     0x434A, 0x4319, 0x430F, 0x4102, 0x439F, 0x432B, 0x438F, 0x43AF, 
  727.     0x4328, 0x4373, 0x43D5, 0x434B, 0x430A, 0x4364, 0x432C, 0x4106, 
  728.     0x432D, 0x4106, 0x4281, 0x4172, 0x4260, 0x4177, 0x421D, 0x4176, 
  729.     0x4106, 0x4104, 0x4103, 0x4107, 0x4101, 0x4101, 0x4102, 0x4102, 
  730.     0x4105, 0x4105, 0x4103, 0x4105, 0x4107, 0x4101, 0x4105, 0x4106, 
  731.     0x4106, 0x4102, 0x4107, 0x4103, 0x4101, 0x4104, 0x4107, 0x4104, 
  732.     0x4102, 0x4101, 0x4102, 0x4106, 0x4102, 0x974B, 0x4053, 0x9741, 
  733.     0x4106, 0x4106, 0x4100, 0x4104, 0x4101, 0x4101, 0x4103, 0x4107, 
  734.     0x4102, 0x4106, 0x4105, 0x4100, 0x4100, 0x4100, 0x4100, 0x4102, 
  735.     0x4104, 0x4104, 0x4106, 0x4103, 0x4107, 0x4103, 0x4105, 0x4105, 
  736.     0x4104, 0x4107, 0x4104, 0x4107, 0x4100, 0x4103, 0x4103, 0x4104, 
  737.     0x4100, 0x4107, 0x4107, 0x4104, 0x4102, 0x4104, 0x4103, 0x4102, 
  738.     0x4100, 0x4105, 0x4106, 0x4105, 0x4101, 0x4107, 0x4102, 0x4103, 
  739.     0x4101, 0x4102, 0x4102, 0x4102, 0x4103, 0x4100, 0x4106, 0x4100, 
  740.     0x4104, 0x4105, 0x4102, 0x4105, 0x4102, 0x4107, 0x4104, 0x4100, 
  741.     0x4106, 0x4100, 0x4106, 0x4107, 0x4106, 0x4102, 0x4104, 0x4103, 
  742.     0x4107, 0x4102, 0x9747, 0x4053, 0x998A, 0x99AF, 0x99A1, 0x99AF, 
  743.     0x99BD, 0x99B4, 0x99B2, 0x99B8, 0x99AD, 0x99AC, 0x99BC, 0x99A5, 
  744.     0x99A9, 0x99AE, 0x99B3, 0x99A9, 0x99A9, 0x99B1, 0x99B8, 0x99B3, 
  745.     0x99A7, 0x99B9, 0x99B6, 0x99BE, 0x99BD, 0x99A2, 0x99BD, 0x99BA, 
  746.     0x99A0, 0x99AC, 0x99BD, 0x99BA, 0x99BC, 0x99A8, 0x99A7, 0x99BF, 
  747.     0x99B1, 0x99A1, 0x99A0, 0x99A4, 0x99AD, 0x99AE, 0x99A5, 0x99AC, 
  748.     0x99AB, 0x99B8, 0x99A6, 0x99A9, 0x99AB, 0x99A6, 0x99BD, 0x99AE, 
  749.     0x99B3, 0x99B1, 0x99AF, 0x99B7, 0x99A5, 0x99A4, 0x99A5, 0x99B7, 
  750.     0x99A2, 0x99B4, 0x99AB, 0x99A2, 0x99BE, 0x99A1, 0x99AA, 0x99BB, 
  751.     0x99A4, 0x99AA, 0x99A2, 0x99A0, 0x99AC, 0x99B7, 0x99AB, 0x9735, 
  752.     0x4053, 0x9743, 0x4104, 0x4107, 0x421B, 0x42A9, 0x429C, 0x42A1, 
  753.     0x427B, 0x4268, 0x4208, 0x42A3, 0x4248, 0x42C2, 0x4165, 0x4102, 
  754.     0x4265, 0x4329, 0x4338, 0x4373, 0x4308, 0x4372, 0x437A, 0x4163, 
  755.     0x4106, 0x4147, 0x4269, 0x424B, 0x4149, 0x4167, 0x4104, 0x4248, 
  756.     0x42A0, 0x4208, 0x4265, 0x42C9, 0x4106, 0x4100, 0x4105, 0x4105, 
  757.     0x4106, 0x42A0, 0x432B, 0x4363, 0x41D6, 0x4101, 0x4185, 0x419B, 
  758.     0x4199, 0x418C, 0x4103, 0x41A5, 0x4183, 0x4184, 0x41C1, 0x41A8, 
  759.     0x41B0, 0x4166, 0x4105, 0x4235, 0x430D, 0x43C5, 0x41D0, 0x4105, 
  760.     0x4182, 0x419F, 0x4199, 0x4189, 0x4106, 0x41A3, 0x4187, 0x41A0, 
  761.     0x419C, 0x418E, 0x41C6, 0x4106, 0x975D, 0x4054, 0x990D, 0x99A2, 
  762.     0x99BF, 0x99BC, 0x99AD, 0x99A0, 0x99B6, 0x99BF, 0x99B6, 0x99A8, 
  763.     0x99A9, 0x99BA, 0x99B5, 0x99BF, 0x99AF, 0x99A9, 0x99B1, 0x99AC, 
  764.     0x99A9, 0x99BF, 0x99BF, 0x99AD, 0x99A2, 0x99AB, 0x99A3, 0x99BC, 
  765.     0x99A5, 0x99AD, 0x99AA, 0x99BB, 0x99BF, 0x99B9, 0x99A4, 0x99A7, 
  766.     0x99B6, 0x99AA, 0x99A6, 0x99BC, 0x99A9, 0x99AA, 0x99A0, 0x99A5, 
  767.     0x99A9, 0x99A1, 0x99BB, 0x99A7, 0x99B7, 0x99BD, 0x99B6, 0x99AE,
  768.     0x99BE, 0x99A0, 0x99A1, 0x99B7, 0x99B2, 0x99B0, 0x99BA, 0x99BF,
  769.     0x99AA, 0x99BA, 0x99A7, 0x99AC, 0x99BC, 0x99A8, 0x99B4, 0x99BB,
  770.     0x99B7, 0x99A5, 0x99AE, 0x99A9, 0x99A5, 0x99AE, 0x99A0, 0x99A5,
  771.     0x99A1, 0x979C, 0x4055, 0xFFFF};
  772. #endif
  773.  
  774. /*************************************************************************/
  775.  
  776. void Decode_And_Show_Titles (void)
  777.  
  778. {
  779.     uchar* Str ;
  780.  
  781.     Str = (uchar*)Title ;
  782.     Decode (Str,Title,TITLE_CHKSUM) ;
  783.     Show_Titles () ;
  784. }
  785.  
  786. /*************************************************************************/
  787.  
  788. void Show_Titles (void)
  789.  
  790. {
  791.     clrscr () ; gotoxy (0,0) ;
  792.     printf ((char*)Title) ;
  793. }
  794.  
  795. /*************************************************************************/
  796.  
  797. void Decode (uchar* String, ushort* Shorts, ushort Checksum)
  798. /*
  799. PURPOSE: To decode the string, storing it inplace where the shorts
  800.          used to be. We also make sure that the decoded string has
  801.          the same checksum as the one passed to us. If the checksum
  802.          is different then we exit immediately.
  803. */
  804. {
  805.     short s,c ;
  806.     ushort Check ;
  807.  
  808.     Check = 0 ;
  809.     s = 0 ;
  810.     c = 0 ;
  811.     while (Shorts[s] != 0xFFFF) {
  812.         if (Shorts[s] & NORMAL_TAG) {
  813.             String[c] = (Shorts[s] >> NORMAL_SHIFT) & 0xFF ;
  814.         } else if (Shorts[s] & SPECIAL_TAG) {
  815.             String[c] = (Shorts[s] >> SPECIAL_SHIFT) & 0xFF ;
  816.         } else {
  817.             exit (1) ;
  818.         }
  819.         Check = Check + (ushort)String[c] ;
  820.         s++ ;
  821.         c++ ;
  822.     }
  823.     String[c] = NUL ;
  824.     if (Check != Checksum) {
  825.         exit (1) ;
  826.     }
  827. }
  828.  
  829. /*************************************************************************/
  830.